package cn.maihe.elg.operation.centers.epoint.dto.handler;

import cn.maihe.elg.operation.centers.epoint.dto.EpointBaseReqDTO;
import cn.maihe.elg.operation.common.annotation.NumberFmt;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;

/**
 * @Description 发票申请 入参
 * @Author SSX
 * @Date 2025/07/04
 */
@Data
public class MeiShanInvoiceApplyReq extends EpointBaseReqDTO {
    /**
     * 是	平台编码（由数据服务支撑平台分配）
     */
    @NotBlank(message = "平台编码不能为空")
    @Length(max = 50)
    private String platformcode;

    /**
     * 是	业务流水号
     */
    @Length(max = 50)
    @NotBlank(message = "业务流水号不能为空")
    private String applyno;

    /**
     * 是	保函编号
     */
    @NotBlank(message = "保单编号不能为空")
    @Length(max = 50)
    private String baohanno;

    /**
     * 是	投标人名称
     */
    @NotBlank(message = "投标人名称不能为空")
    @Length(max = 200)
    private String biddername;

    /**
     * 是	投标企业 统一社会信用代码
     */
    @NotBlank(message = "统一社会信用代码不能为空")
    @Length(max = 50)
    private String biddercode;

    /**
     * 是	开票金额，格式：数字格式字符串
     */
    @NotBlank(message = "开票金额不能为空")
    @NumberFmt(scale = 2)
    @Length(max = 50)
    private String amount;

    /**
     * 是	发票类型 0普票；1专票；
     */
    @NotBlank(message = "发票类型不能为空")
    @Length(max = 10)
    private String type;

    /**
     * 否	公司地址，专票时必填
     */
    @Length(max = 500)
    private String address;

    /**
     * 否	公司电话，专票时必填
     */
    @Length(max = 50)
    private String phone;

    /**
     * 否	开户行，专票时必填
     */
    @Length(max = 200)
    private String bank;

    /**
     * 否	帐号，专票时必填
     */
    @Length(max = 50)
    private String account;

    /**
     * 否	接收电子发票的email
     */
    @Length(max = 100)
    private String email;

    /**
     * 否	收件人联系电话，专票时必填
     */
    @Length(max = 50)
    private String mobile;

    /**
     * 否	收件人姓名，专票时必填
     */
    @Length(max = 50)
    private String contactname;

    /**
     * 否	收件地址，专票时必填
     */
    @Length(max = 200)
    private String contactaddress;
}
